Replaces the characters intersecting with the specified rectangles at the specified percentage.
public bool ReplaceIntersectedCharacters(
IEnumerable<LeadRect> bounds,
char replaceCharacter,
int intersectionPercentage
)
- (BOOL)replaceIntersectedCharacters:(NSArray<NSValue *> *)bounds withCharacter:(char)replaceCharacter intersectionPercentage:(NSInteger)intersectionPercentage;
public:
bool ReplaceIntersectedCharacters(
IEnumerable<LeadRect^>^ bounds,
Char replaceCharacter,
Int32 intersectionPercentage
)
def ReplaceIntersectedCharacters(self,bounds,replaceCharacter,intersectionPercentage):
bounds
List of rectangles containing the bounds to check. These values are in pixels.
replaceCharacter
The new character code to use. Use 0 to delete the characters.
intersectionPercentage
Intersection percentage between each character and bounds.
true if one or more characters were replaced; otherwise, false.
This is a helper method used to quickly perform actions such as redacting or removing characters from the recognition data based on their locations.
intersectionPercentage can be used to control the percentage of intersection on which to perform the operation as follows:
intersectionPercentage value of 0 means use the default percentage of 50%.
using Leadtools;
using Leadtools.Codecs;
using Leadtools.Ocr;
using Leadtools.Forms.Common;
using Leadtools.Document.Writer;
using Leadtools.WinForms;
using Leadtools.Drawing;
using Leadtools.ImageProcessing;
using Leadtools.ImageProcessing.Color;
public void OcrAndRedactToPdf()
{
string tifFileName = Path.Combine(LEAD_VARS.ImagesDir, "OCR1.tif");
string pdfFileNameBefore = Path.Combine(LEAD_VARS.ImagesDir, "OCR-Redact-Before.pdf");
string pdfFileNameAfter = Path.Combine(LEAD_VARS.ImagesDir, "OCR-Redact-After.pdf");
// Create OCR engine
using (IOcrEngine ocrEngine = OcrEngineManager.CreateEngine(OcrEngineType.LEAD))
{
ocrEngine.Startup(null, null, null, LEAD_VARS.OcrLEADRuntimeDir);
// Load the OCR1.tif image and recognize it
RasterImage image = ocrEngine.RasterCodecsInstance.Load(tifFileName, 1);
using (IOcrPage ocrPage = ocrEngine.CreatePage(image, OcrImageSharingMode.AutoDispose))
{
ocrPage.Recognize(null);
// Save it, note that all the data is in the result PDF file, including "Fast Facts"
using (IOcrDocument ocrDocument = ocrEngine.DocumentManager.CreateDocument(null, OcrCreateDocumentOptions.AutoDeleteFile))
{
ocrDocument.Pages.Add(ocrPage);
ocrDocument.Save(pdfFileNameBefore, DocumentFormat.Pdf, null);
}
// Now, redact "Fast Facts", this could be an input from the user based on rubber banding or Regex.
LeadRect redactRect = LeadRect.FromLTRB(300, 800, 730, 900);
char replaceCharacter = '*';
IOcrPageCharacters ocrPageCharacters = ocrPage.GetRecognizedCharacters();
ocrPageCharacters.ReplaceIntersectedCharacters(new LeadRect[] { redactRect }, replaceCharacter);
ocrPage.SetRecognizedCharacters(ocrPageCharacters);
// Save it again, note that "Fast Facts" is replaced with * characters
using (IOcrDocument ocrDocument = ocrEngine.DocumentManager.CreateDocument(null, OcrCreateDocumentOptions.AutoDeleteFile))
{
ocrDocument.Pages.Add(ocrPage);
ocrDocument.Save(pdfFileNameAfter, DocumentFormat.Pdf, null);
}
}
}
static class LEAD_VARS
{
public const string ImagesDir = @"C:\LEADTOOLS22\Resources\Images";
public const string OcrLEADRuntimeDir = @"C:\LEADTOOLS22\Bin\Common\OcrLEADRuntime";
}
Help Collections
Raster .NET | C API | C++ Class Library | HTML5 JavaScript
Document .NET | C API | C++ Class Library | HTML5 JavaScript
Medical .NET | C API | C++ Class Library | HTML5 JavaScript
Medical Web Viewer .NET
Multimedia
Direct Show .NET | C API | Filters
Media Foundation .NET | C API | Transforms
Supported Platforms
.NET, Java, Android, and iOS/macOS Assemblies
Imaging, Medical, and Document
C API/C++ Class Libraries
Imaging, Medical, and Document
HTML5 JavaScript Libraries
Imaging, Medical, and Document
Your email has been sent to support! Someone should be in touch! If your matter is urgent please come back into chat.
Chat Hours:
Monday - Friday, 8:30am to 6pm ET
Thank you for your feedback!
Please fill out the form again to start a new chat.
All agents are currently offline.
Chat Hours:
Monday - Friday
8:30AM - 6PM EST
To contact us please fill out this form and we will contact you via email.